Decidability of Higher-Order Subtyping with Intersection Types
نویسنده
چکیده
The combination of higher-order subtyping with intersection types yields a typed model of object-oriented programming with multiple inheritance 11]. The target calculus, F ! ^ , a natural generalization of Girard's system F ! with intersection types and bounded polymorphism, is of independent interest, and is our subject of study. Our main contribution is the proof that subtyping in F ! ^ is decidable. This yields as a corollary the decidability of subtyping in F ! , its intersection free fragment, because the F ! ^ subtyping system is a conservative extension of that of F !. The calculus presented in 8] has no reductions on types. In the F ! ^ sub-typing system the presence of ^-conversion { an extension of-conversion with distributivity laws { drastically increases the complexity of proving the decidability of the subtyping relation. Our proof consists of, rstly, deening an algorithmic presentation of the subtyping system of F ! ^ , secondly , proving that this new presentation is sound and complete with respect to the original one, and nally, proving that the algorithm always terminates. Moreover, we establish basic structural properties of the language of types of F ! ^ such as strong normalization and Church-Rosser. Among the novel aspects of the present solution is the use of term rewriting techniques to present intersection types, which clearly splits the computational semantics (reduction rules) from the syntax (inference rules) of the system. Another original feature is the use of a choice operator to model the behavior of variables during subtype checking.
منابع مشابه
Decidable Higher Order Subtyping
This paper establishes the decidability of typechecking in Fω ∧ , a typed lambda calculus combining higher-order polymorphism, subtyping, and intersection types. It contains the first proof of decidability of subtyping for a higher-order system.
متن کاملOn the Theory of Structural Subtyping
We show that the first-order theory of structural subtyping of non-recursive types is decidable. Let Σ be a language consisting of function symbols (representing type constructors) and C a decidable structure in the relational language L containing a binary relation ≤. C represents primitive types; ≤ represents a subtype ordering. We introduce the notion of Σ-term-power of C, which generalizes ...
متن کاملOrder-Sorted Inductive Types
System F ! is an extension of system F ! with subtyping and bounded quantiication. Order-sorted algebra is an extension of many-sorted algebra with overloading and subtyping. We combine both formalisms to obtain IF ! , a higher-order typed-calculus with subtyping, bounded quan-tiication and order-sorted inductive types, i.e. data types with built-in subtyping and overloading. Moreover we show t...
متن کاملMultiple Inheritance via Intersection Types
Combining intersection types with higher-order subtyping yields a typed model of object-oriented programming with multiple inheritance. Objects, message passing, subtyping, and inheritance appear as programming idioms in a typed-calculus, a modelling technique that facilitates experimentation and helps in distinguishing between essential aspects of the object-oriented style |encapsulation and s...
متن کاملExtracting a formally verified Subtyping Algorithm for Intersection Types from Ideals and Filters
The BCD type system of intersection types has been introduced by Barendregt, Coppo and Dezani in [1]. It is derived from a filter lambda model in order to characterize exactly the strongly normalizing terms. Formally, intersection types over variables α ∈ V σ, τ, ρ ::= α | σ → τ | σ ∩ τ | ω are related by the least preorder ≤ closed under the rules σ ≤ ω, ω ≤ ω → ω, σ ∩ τ ≤ σ, σ ∩ τ ≤ τ, σ ≤ σ ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994